<?php
/*
  aphly 2018/8/16
*/
if(!defined('IN_DISCUZ')) {
	exit('Access Denied');
}

//支付宝、微信支付  示例代码，具体自己修改
//origin 格式插件以plugin_开头,discuz内部以sys_开头

//支付宝

//1、下单

if($_GET['act']=='a1'){
	$data=array(
		'apitype'=>'alipay',
		'title'=>'sadad',
		'origin'=>'plugin_pay_test', //格式插件以plugin_开头 discuz内部以sys_开头
		'out_trade_no'=>'c'.time().mt_rand(1000,9999), 
		'amount'=>'0.01',//单位元
		//'notify_url'=>'https....', //插件的异步通知 默认是到这个文件（需要自己创建）：source\plugin\pay_test\notify\notify.php，或者自定义
		'return_url'=>$_G['siteurl']
	);

	$pay = new pay($data['apitype']);
	$sHtml = $pay->order($data);
	include template("pay_test:index"); 
}


//2、查询
if($_GET['act']=='a2'){
	$data=array(
		'apitype'=>'alipay',
		'out_trade_no'=>'c16204712229322',
	);
	$pay = new pay($data['apitype']);
	$res = $pay->query($data['out_trade_no']);
	var_dump($res);
}


//3、退款
if($_GET['act']=='a3'){
	$data=array(
		'apitype'=>'alipay',
		'out_trade_no'=>'c16204712229322',
		'refund_amount'=>0.01,
	);
	$pay = new pay($data['apitype']);
	$res = $pay->refund($data['out_trade_no'],$data['refund_amount']);
	var_dump($res);
}

//4、APP 支付宝下单
/*
if($_GET['act']=='a_app'){
	$data=array(
		'apitype'=>'alipay',
		'type'=>'app', //APP端固定
		'title'=>'sadad',
		'origin'=>'plugin_pay_test', //格式插件以plugin_开头 discuz内部以sys_开头
		'out_trade_no'=>'c'.time().mt_rand(1000,9999), 
		'amount'=>'0.01',//单位元
		//'notify_url'=>'https....', //插件的异步通知 默认是到这个文件（需要自己创建）：source\plugin\pay_test\notify\notify.php，或者自定义
	);

	$pay = new pay($data['apitype']);
	$res = $pay->order($data);
	exit($res);
}
*/

//微信支付

//1、下单
if($_GET['act']=='w1'){
	$data=array(
		'apitype'=>'wechat',
		'title'=>'sadad',
		'origin'=>'plugin_pay_test', //格式以plugin_开头
		'out_trade_no'=>'c'.time().mt_rand(1000,9999), 
		'amount'=>'0.01',//单位元
		//'notify_url'=>'https....', //插件的异步通知 默认是到这个文件（需要自己创建）：source\plugin\pay_test\notify\notify.php，或者自定义
		'return_url'=>$_G['siteurl'],
		'openid'=>''
	);

	$pay = new pay($data['apitype']);

	if(strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false){
		//jsapi 这里会跳转一次，建议数据保存一下
		$data['openid'] = $pay->getWechat();
	}

	$res = $pay->order($data);
	if($res['type']=='jsapi' || $res['type']=='h5'){
		include template("pay_test:wxpay"); 
	}else{
		include template("pay_test:wxpay"); 
	}
}


//2、查询
if($_GET['act']=='w2'){
	$data=array(
		'apitype'=>'wechat',
		'out_trade_no'=>'c16204712229322',
	);
	$pay = new pay($data['apitype']);
	$res = $pay->query($data['out_trade_no']);
	var_dump($res);
}



//3、退款
if($_GET['act']=='w3'){
	$data=array(
		'apitype'=>'wechat',
		'out_trade_no'=>'c16208702295816',
		'refund_amount'=>0.01,
	);
	$pay = new pay($data['apitype']);
	$res = $pay->refund($data['out_trade_no'],$data['refund_amount']);
	var_dump($res);
}


//4、获取微信公众号openid 或者 微信公众号用户信息
if($_GET['act']=='w0'){
	if(strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false){
		$pay = new pay;
		//scope=snsapi_base 获取openid
		//scope=snsapi_userinfo 获取openid和用户信息
		$scope='snsapi_base';
		$data = $pay->getWechat($scope);
		var_dump($data);
	}
}


//5、微信小程序 下单
if($_GET['act']=='w_min'){
	$data=array(
		'apitype'=>'wechat',
		'title'=>'sadad',
		'origin'=>'plugin_pay_test', //格式以plugin_开头
		'out_trade_no'=>'c'.time().mt_rand(1000,9999), 
		'amount'=>'0.01',//单位元
		//'notify_url'=>'https....', //插件的异步通知 默认是到这个文件（需要自己创建）：source\plugin\pay_test\notify\notify.php，或者自定义
		'code'=>$_GET['code']
	);
	$pay = new pay($data['apitype']);
	$res = $pay->order($data);
	exit(json_encode($res));
}

//6、APP 微信支付下单
/*
if($_GET['act']=='w_app'){
	$data=array(
		'apitype'=>'wechat',
		'type'=>'app', //APP端固定
		'title'=>'sadad',
		'origin'=>'plugin_pay_test', //格式以plugin_开头
		'out_trade_no'=>'c'.time().mt_rand(1000,9999), 
		'amount'=>'0.01',//单位元
		//'notify_url'=>'https....', //插件的异步通知 默认是到这个文件（需要自己创建）：source\plugin\pay_test\notify\notify.php，或者自定义
		'return_url'=>$_G['siteurl']
	);
	$pay = new pay($data['apitype']);
	$res = $pay->order($data);
	exit(json_encode($res));
}
*/
